package com.cnct.generic.dubbo.handler;

import java.util.List;

public interface InvokeCoreHandler {


    /**
     * 核心执行方法
     */
    Object invoke(String interfaceName, String methodName, List<Object> paramList);

    /**
     * 核心执行方法
     */
    Object invoke(String interfaceName, String methodName, List<Object> paramList, String group);

    /**
     * 核心执行方法
     */
    Object invoke(String interfaceName, String methodName, String url, List<Object> paramList);

    /**
     * 核心执行方法
     */
    Object invoke(String interfaceName, String methodName, String url, List<Object> paramList, String group);

    /**
     * 核心执行方法
     *
     * @param interfaceName 接口名称 {全名如 com.test.service.HelloService }
     * @param methodName    方法名称 方法名称 {如: sayHello }
     * @param url           直连地址
     * @param group         分组
     * @param paramList     参数List集合
     * @param address       注册中心地址
     * @param version       服务提供版本号
     * @return
     */
    Object invoke(String interfaceName, String methodName, String url, String group, List<Object> paramList, String address, String version);

}
